package smartMarket.pessoa;

import banco.pessoa.BancoCliente;
import excecoes.estoque.DinheiroNegativoException;
import excecoes.pessoa.CpfCnpjExistenteException;
import excecoes.pessoa.CpfCnpjInvalidoException;
import excecoes.pessoa.LocalizacaoInvalidaException;
import excecoes.pessoa.NomeInvalidoException;
import java.sql.SQLException;

public class Cliente extends Pessoa {

    //Atributo
    private float limiteDeCompra;

    // Get
    public float getLimite() {
        return limiteDeCompra;
    }

    // Set
    public void setLimite(float limite) throws DinheiroNegativoException {
        if (limite <= 0) {
            throw new DinheiroNegativoException("Campo limite tem que estar acima de 0,00.");
        }

        this.limiteDeCompra = limite;
    }
    
    @Override
    public void setCPF_CNPJ(String CPF) throws CpfCnpjInvalidoException, SQLException, NullPointerException, NomeInvalidoException, DinheiroNegativoException, CpfCnpjExistenteException, LocalizacaoInvalidaException {
        
        this.CPF_CNPJ = CPF;
        
    }
    
    @Override
    public void setCPF_CNPJ(String CPF, boolean adicionamento) throws CpfCnpjInvalidoException, SQLException, NullPointerException, NomeInvalidoException, DinheiroNegativoException, CpfCnpjExistenteException, LocalizacaoInvalidaException {
        
        if (CPF.equals("   .   .   -  ")) {
            throw new CpfCnpjInvalidoException();
        } else { 
            BancoCliente bc = new BancoCliente();
            if (bc.buscar(CPF)!=null) {
                throw new CpfCnpjExistenteException();
            }
        }
        
        this.CPF_CNPJ = CPF;
        
    }
}